- Published on
docker一键运行windows macos.mdx
- Authors

- Name
- JiGu
- @crypto20x
- 项目简介
dockurr/windows 是一个 Docker 镜像,它利用 KVM(基于内核的虚拟机)在 Docker 容器内运行 Windows 操作系统。
核心原理:Docker 容器 -> QEMU/KVM -> Windows OS。
主要用途:测试环境、沙盒运行 Windows 应用、CI/CD 管道、无需双系统的 Windows 体验。
GitHub/Docker Hub: dockurr/windows
- 前置要求 (非常重要)
由于需要运行虚拟机,硬件加速是必须的。
⚠️ KVM 支持: 宿主机(Host)必须支持并开启 KVM (Kernel-based Virtual Machine)。
Linux: 需要加载 kvm 模块。
Windows (WSL2): 需要在 .wslconfig 中开启嵌套虚拟化。
macOS: 性能可能会受限,通常需要使用 QEMU 的模拟模式(较慢)。
- 快速开始 (Quick Start) 方式一:Docker CLI
最简单的运行方式,默认会下载并安装 Windows 11。 Bash
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
方式二:Docker Compose (推荐)
使用 Compose 文件可以更方便地管理配置和持久化数据。 YAML
version: "3" services: windows: image: dockurr/windows container_name: windows environment:
- VERSION=win11
- RAM_SIZE=8G
- CPU_CORES=4
- DISK_SIZE=64G devices:
- /dev/kvm cap_add:
- NET_ADMIN ports:
- 8006:8006 # Web 访问端口
- 3389:3389 # RDP 远程桌面端口 volumes:
- ./data:/storage # 持久化系统盘 stop_grace_period: 2m restart: on-failure
- 关键配置详解 (Environment Variables)
可以通过环境变量自定义安装的 Windows 版本和硬件资源。 变量名 描述 示例值 备注 VERSION 指定 Windows 版本 win11, win10, win7, win8.1, win2022 (Server) 默认为 win11 RAM_SIZE 分配内存大小 4G, 8G, 16G 建议至少 4G CPU_CORES 分配 CPU 核心数 2, 4, 8 核心越多越流畅 DISK_SIZE C 盘大小 64G, 128G 初始安装后会自动扩展 ISO 自定义镜像地址 http://.../win.iso 如果不想自动下载官方镜像 MANUAL 手动安装模式 Y 或 N 默认为 N (全自动无人值守安装) 5. 如何连接与使用 A. Web 浏览器访问 (noVNC)
容器启动后,在浏览器访问:http://localhost:8006
这是最直接的控制台访问方式,可以看到安装进度和 BIOS 界面。
B. 远程桌面 (RDP)
推荐方式,性能比 Web 更好,支持剪贴板共享和音频。
使用 Windows 自带的 "远程桌面连接" 或 macOS 的 "Microsoft Remote Desktop"。
地址:localhost:3389
默认凭据:无需密码,或根据安装后的提示设置。
- 数据持久化与存储
如果不挂载 Volume,容器删除后 Windows 系统也会丢失。
系统盘持久化: 挂载 /storage 目录。 YAML
volumes:
- ./win_data:/storage
共享宿主机文件: 可以将宿主机的文件挂载到 Windows 内部的 "D 盘" (VirtIO 驱动)。 YAML
volumes:
- /home/user/downloads:/shared
注:在 Windows 内部,这通常显示为一个网络驱动器或附加磁盘。
常见问题 (Troubleshooting)
安装速度慢: 第一次启动时,容器需要下载 Windows ISO(约 5GB+)并执行自动安装。这可能需要 30-60 分钟,取决于网速和 CPU 性能。请耐心等待,可以通过 Web 界面 (:8006) 查看进度。
没有网络: 确保添加了 --cap-add NET_ADMIN 权限。
KVM 报错: 如果日志显示 "KVM not available",请检查 BIOS 是否开启虚拟化(VT-x/AMD-V),以及宿主机的权限设置。
Windows 激活: 默认安装的是评估版或未激活版。如果长期使用,你需要输入自己的正版序列号进行激活。
进阶玩法
自定义 ISO:如果你有修改过的精简版 Windows ISO,可以将其重命名为 custom.iso 并放入 /storage 目录,容器会优先使用它。
DHCP/独立 IP:如果希望 Windows 有局域网内的独立 IP,需要配置 Docker 的 macvlan 网络模式。